With fabric latencies projected to reach within an order of memory latencies, a distributed shared memory (DSM) system can offer a large, single address space to a cluster of servers on a fabric; thus offering a scalable, cost-efficient alternative to “scale-up” node-controller systems. However, one of the drawbacks of DSM is the cache coherence problem for an application's memory references. For an enterprise or big data application, several types of memory references, such as the stack and temporary storage per process that is running on a system need not be coherent. On the other hand, there are often sections of code where the application needs to ensure coherence (for example: a critical section for transaction processing). Without the ability to offer some form of coherence, DSM usages over our fabrics are handicapped in their ability to handle transaction-based processing. This could be a serious limiting factor, given that the industry is trending towards unified systems for both analytics and transaction processing.